package com.seu.me.test.end.bill;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElements;
import java.util.List;

/**
 * 账单F信息
 * 生育住院收据F
 *
 * @author liangfeihu
 * @since 2019/11/20 14:30
 */
@Data
@ToString
@NoArgsConstructor
@XmlAccessorType(XmlAccessType.FIELD)
public class BillInfoF {
    private String FeeType = "F";
    private String BillNo;
    private String HospitalCode = "";
    private String HospitalName;
    private String HospStartDate = "";
    private String HospEndDate = "";
    private String RealHospDate = "";
    private String BillMoney = "";

    private String DeductionFeeMount = "";
    private String ThirdPayMoney = "";
    private String IsSpecial = "";
    private String BirthFeeType = "";
    private String BirthType = "";
    private String OwnEpense = "";
    private String SegmentCom = "";
    private String SegmentFlag = "";
    private String StandByFlag2 = "";
    private String OtherPayMomey = "";

    public BillInfoF(String billNo, String hospitalCode, String hospitalName, String hospStartDate, String hospEndDate, String realHospDate, String billMoney, String birthFeeType) {
        BillNo = billNo;
        HospitalCode = hospitalCode;
        HospitalName = hospitalName;
        HospStartDate = hospStartDate;
        HospEndDate = hospEndDate;
        RealHospDate = realHospDate;
        BillMoney = billMoney;
        BirthFeeType = birthFeeType;
    }

    @XmlElement(name = "MedicalInfoList")
    private MedicalInfoData medicalInfoData;

    @XmlElement(name = "MedicalFeeInfoList")
    private MedicalFeeInfoData medicalFeeInfoData;

    @XmlElement(name = "DiagnoseTypeInfoList")
    private DiagnoseTypeInfoData diagnoseTypeInfoData;

    @XmlElement(name = "OtherInfoList")
    private OtherInfoData otherInfoData;

    @Data
    @ToString
    @NoArgsConstructor
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class MedicalInfoData {
        @XmlElements(value = {@XmlElement(name = "MedicalInfo", type = MedicalInfo.class)})
        private List<MedicalInfo> medicalInfoList;
    }

    @Data
    @ToString
    @NoArgsConstructor
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class MedicalFeeInfoData {
        @XmlElements(value = {@XmlElement(name = "MedicalFeeInfo", type = MedicalFeeInfo.class)})
        private List<MedicalFeeInfo> medicalFeeInfoList;
    }

    @Data
    @ToString
    @NoArgsConstructor
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class DiagnoseTypeInfoData {
        @XmlElements(value = {@XmlElement(name = "DiagnoseTypeInfo", type = DiagnoseTypeInfo.class)})
        private List<DiagnoseTypeInfo> diagnoseTypeInfoList;
    }

    @Data
    @ToString
    @NoArgsConstructor
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class OtherInfoData {
        @XmlElements(value = {@XmlElement(name = "OtherInfo", type = OtherInfo.class)})
        private List<OtherInfo> otherInfoList;
    }

}
